import { request} from "../../request/index"
import regeneratorRuntime from "../../lib/runtime/runtime.js";
// pages/category/index.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        // 左侧的菜单数据
        leftMenuList:[],
        // 右侧的商品数据
        rightContent:[],
        // 被点击的左侧菜单
        currentIndex:0,
        // 右侧
        scrollTop:[]
    },
    // 接口的返回数据
     Cates:[],
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
    // 1先判断一下本地存储中有没有旧数据
    //  {item:Date.now(),data:{...}}
    // 2没有旧数据 直接发送心情求
    // 3有旧数据 同时 旧数据也没有过去 旧使用 本地存储中的旧数据即可
    // 1.获取本地存储的数据 (小程序中也是存在本地存储 技术)
     const Cates=wx.getStorageSync("cates");
    //判断
    if(!Cates){
    //不存在 发送请求获取数据
        this.getCates();
    }else{
        // 有旧数据 定义过期时间 
        if(Date.now()-Cates.time>1000*10){
            // 重新发送请求
            this.getCates();
        }else{
            //可以使用旧的数据
           this.Cates=Cates.data;
           let leftMenuList=this.Cates.map(v=>v.cat_name)
           // 左侧的菜单数据
           let rightContent=this.Cates[0].children;
           this.setData({
            leftMenuList,
            rightContent
           })

        }
    }

    
    },
  
    //获取分类数据
   async getCates(){
        // request({
        //   url:"/categories"
        // }).then(res=>{
        //    this.Cates=res;
        
        //     //  把接口的数据存入到本地存储中
        //     wx.setStorageSync("cates",{time:Date.now(),data:this.Cates})
        //    console.log(res)
        //    // 左侧的菜单数据      循环当前值
        //    let leftMenuList=this.Cates.map(v=>v.cat_name)
        //    // 左侧的菜单数据
        //    let rightContent=this.Cates[0].children;
        //    this.setData({
        //     leftMenuList,
        //     rightContent
        //    })
        // })

        // 使用es7的async await来发送请求
        const res=await request({url:"/categories"});
            this.Cates=res;
            //  把接口的数据存入到本地存储中
            wx.setStorageSync("cates",{time:Date.now(),data:this.Cates})
           console.log(res)
           // 左侧的菜单数据      循环当前值
           let leftMenuList=this.Cates.map(v=>v.cat_name)
           // 左侧的菜单数据
           let rightContent=this.Cates[0].children;
           this.setData({
            leftMenuList,
            rightContent
           })
    },

    // 左侧菜单点击事件
handleItemTap(e){
     console.log(e)
//    获取当前点击事件的下标
     const {index}=e.target.dataset;
// 声明变量保存获取到的右侧数据等于点击的下标 右侧数据 
     let rightContent=this.Cates[index].children
     this.setData({
        currentIndex:index,
        rightContent,
        scrollTop:0
     })
    // 
    }
})